package com.cmii.sjw.department.control.jsc.controller;

import com.cmii.sjw.department.control.jsc.service.StudentsService;
import com.cmii.sjw.department.control.jsc.util.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * 惠学生一表通
 *
 * @Author lz
 * @Date 2025-03-20 周四 10:00
 * @Version 1.0
 */
@Slf4j
@RestController
@CrossOrigin
@RequestMapping("/students")
public class StudentsController {

    @Autowired
    private StudentsService yibiaoTongService;

    /**
     * 获取token
     *
     * @return
     */
    @PostMapping("/token")
    public String TokenManager() {
        return yibiaoTongService.TokenManager();
    }


    /**
     * 心理健康
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/mentaHeath")
    public Result mentaHeath(String year,String type, String name) {
        return yibiaoTongService.mentaHeath(year,type, name);
    }

    /**
     * 心理健康详情
     *
     * @param year 年份
     * @param type 类型
     * @param name 名称
     * @return
     */
    @PostMapping("/mentaHeathDetail")
    public Result mentaHeathDetail(String year, String type, String name) {
        return yibiaoTongService.mentaHeathDetail(year, type, name);
    }

    /**
     * 视力健康
     *
     * @param year 年份
     * @return
     */
    @PostMapping("/visionHeath")
    public Result visionHeath(String year) {
        return yibiaoTongService.visionHeath(year);
    }

    /**
     * 视力健康详情
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/visionHeathDetail")
    public Result visionHeathDetail(String year ,String name) {
        return yibiaoTongService.visionHeathDetail(year,name);
    }

    /**
     * 体质健康
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/physicalHealth")
    public Result physicalHealth(String year ,String name) {
        return yibiaoTongService.physicalHealth(year,name);
    }

    /**
     * 体质健康详情
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/physicalHealthDetail")
    public Result physicalHealthDetail(String year ,String name) {
        return yibiaoTongService.physicalHealthDetail(year,name);
    }

    /**
     * 在校学生结构（按学段）
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/periodStudent")
    public Result periodStudent(String year ,String name) {
        return yibiaoTongService.periodStudent(year,name);
    }

    /**
     * 在校学生明细（区县+学段）
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/studentDetail")
    public Result studentDetail(String year ,String name) {
        return yibiaoTongService.studentDetail(year,name);
    }

    /**
     * 在校学生城乡结构（城乡结构+学段）
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/town")
    public Result town(String year ,String name) {
        return yibiaoTongService.town(year,name);
    }

    /**
     * 在校学生性别结构（性别学段）
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/periodGender")
    public Result periodGender(String year ,String name) {
        return yibiaoTongService.periodGender(year,name);
    }
    /**
     * 各学段分类在校生招生人数（市、区县）
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/enrolled")
    public Result enrolled(String year ,String name) {
        return yibiaoTongService.enrolled(year,name);
    }
    /**
     * 学生体制健康优良率（市、区县）
     *
     * @param year 年份
     * @param name 名称
     * @return
     */
    @PostMapping("/physical")
    public Result physical(String year ,String name) {
        return yibiaoTongService.physical(year,name);
    }
    /**
     * 学生授位人数（高校）
     *
     * @param year 年份
     * @return
     */
    @PostMapping("/degree")
    public Result degree(String year) {
        return yibiaoTongService.degree(year);
    }

    /**
     * 分校详情（办学类型不同返回数据又所不同）
     *
     * @param year 年份
     * @param orgnazitionNo 学校代码
     * @return
     */
    @PostMapping("/schoolDetail")
    public Result schoolDetail(String year,String orgnazitionNo) {
        return yibiaoTongService.schoolDetail(year,orgnazitionNo);
    }

    /**
     * 各类型学生情况
     *
     * @param year 年份
     * @param name 区县名称
     * @return
     */
    @PostMapping("/variousTypes")
    public Result variousTypes(String year,String name) {
        return yibiaoTongService.variousTypes(year,name);
    }
    /**
     * 区县学生异动
     *
     * @param year 年份
     * @param name 区县名称
     * @return
     */
    @PostMapping("/alteration")
    public Result alteration(String year,String name) {
        return yibiaoTongService.alteration(year,name);
    }
    /**
     * 各区县义务教育、学前教育在校生、招生
     *
     * @param year 年份
     * @return
     */
    @PostMapping("/countyStudentNum")
    public Result countyStudentNum(String year) {
        return yibiaoTongService.countyStudentNum(year);
    }

    /**
     * 学校布点
     *
     * @param year 年份
     * @param name 区县名称
     * @return
     */
    @PostMapping("/layout")
    public Result layout(String year,String name) {
        return yibiaoTongService.layout(year,name);
    }
    /**
     * 生均校舍面积
     *
     * @param year 年份
     * @param name 区县名称
     * @return
     */
    @PostMapping("/averageArea")
    public Result averageArea(String year,String name) {
        return yibiaoTongService.averageArea(year,name);
    }
    /**
     * 指标汇总表
     *
     * @param year 年份
     * @param name 区县名称 区县、高校名称
     * @param type 指标类型 1:地市 2:区县 3:高校
     * @return
     */
    @PostMapping("/summary")
    public Result summary(String year,String name,String type) {
        return yibiaoTongService.summary(year,name,type);
    }
    /**
     * 学生列表
     *
     * @param year          年份
     * @param orgnazitionNo 学校代码
     * @param pageNum       页码
     * @param pageSize      页长
     * @return
     */
    @PostMapping("/studentList")
    public Result studentList(String year, String orgnazitionNo, int pageNum, int pageSize) {
        return yibiaoTongService.studentList(year, orgnazitionNo, pageNum, pageSize);
    }
}
